<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //箭头函数的注意点:
            // 1) 箭头函数this指向声明时所在作用域下 this 的值
            // 2) 箭头函数不能作为构造函数实例化
            // 3) 箭头函数内没有arguments
            // 4) 如果形参只有一个，则小括号可以省略
            // 5) 函数体如果只有一条语句，则花括号可以省略，函数的返回值为该条语句的执行结果


        // const ob = {
        //     name:"张三",
        //     say:function(){
        //         //console.log(this); // 此处this指向的是ob对象
        //         function demo(){
        //             console.log(this); // 此处this指向window对象
        //         }
        //         demo(); // 调用当前的普通函数demo
        //     }
        // }
        // ob.say();


        //定义一个stu学生对象，内有：两个属性、一个方法。
        // const stu = {
        //     name:"张三",
        //     likes:['吃饭','睡觉','敲代码'],
        //     printLikes:function(){
        //         //使用map遍历likes属性，并输出信息
        //         this.likes.map(function(like){
        //             //console.log(this);
        //             console.log(`${this.name} 喜欢 ${like}`);
        //         });
        //     }
        // };

        // //测试
        // stu.printLikes();
        /*
            喜欢 吃饭
            喜欢 睡觉
            喜欢 敲代码
        */
        

        //定义一个stu2学生对象，内有：两个属性、一个方法。
        // const stu2 = {
        //     name:"张三",
        //     likes:['吃饭','睡觉','敲代码'],
        //     printLikes:function(){
        //         let that = this; // 此处将this赋予一个变量，然后在下面函数内部就可以获取
        //         //使用map遍历likes属性，并输出信息
        //         this.likes.map(function(like){
        //             console.log(that);
        //             console.log(`${that.name} 喜欢 ${like}`);
        //         });
        //     }
        // };

        //测试
        // stu2.printLikes();
        /*
            张三 喜欢 吃饭
            张三 喜欢 睡觉
            张三 喜欢 敲代码
        */


        //定义一个stu3学生对象，内有：两个属性、一个方法。
        const stu3 = {
            //name:"张三",
            likes:['吃饭','睡觉','敲代码'],
            printLikes:function(){
                //使用map遍历likes属性，并输出信息
                this.likes.map(like => {
                    //console.log(this);
                    console.log(`${this.name} 喜欢 ${like}`);
                });
            }
        };

        //测试
        stu3.printLikes();
        /*
            张三 喜欢 吃饭
            张三 喜欢 睡觉
            张三 喜欢 敲代码
        */
    </script>
</body>
</html>